package com.taotao.manage.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.taotao.common.service.RedisService;
import com.taotao.manage.pojo.ItemCat;
import com.taotao.manage.service.ItemCatService;

/**
 * @Description:商品类目相关的控制层
 * @author:     许明
 */
@RequestMapping("item/cat")
@Controller
public class ItemCatController {

	@Autowired
	private ItemCatService itemCatService;

	@Autowired
	private RedisService shardedJedisPoolService;

	/**
	 * @Description:商品新增页，点击‘选择类目’，加载类目数据,因为数据很多，只展示parent_id为0的父节点
	 * 				 select * from tb_item_cat where parent_id=0
	 * 
	 * 		Controller三要素：
	 * 				1、请求是同步（有jsp页面的跳转），还是异步（页面不跳转）  》》》 异步请求
	 * 				2、请求参数是什么？   》》》 需要parent_id，并且值为0,因为tree需要的是id，所以value="id"
	 * 				3、返回的结果是什么？ 》》》 List<ItemCat>
	 * 				
	 * @param id
	 * @return
	 * @author 许明
	 */
	//@GetMapping("{id}") 组合查询,因为当前项目使用的spingMVC版本较低，所以暂不支持组合查询
	@RequestMapping(method = RequestMethod.GET)
	public ResponseEntity<List<ItemCat>> queryItemCat(@RequestParam(value = "id", defaultValue = "0") Long parentId) {
		try {
			//设置查询父节点，以及状态为1即有效的数据
			ItemCat record = new ItemCat();
			record.setParentId(parentId);
			record.setStatus(1);

			//调用业务层查询所有的商品类目
			List<ItemCat> itemCats = itemCatService.queryListByWhere(record);

			//根据查询结果判断，给出返回值以及响应码
			if (itemCats == null) {
				return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
			}
			return ResponseEntity.status(HttpStatus.OK).body(itemCats);
		} catch (Exception e) {
			e.printStackTrace();
			return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
		}
	}

}
